package java_test.io_test;

import java.io.*;

public class RandomAccessFileTest {
    public static void main(String[] args) throws IOException {
        RandomAccessFile raf = null;
        File file = null;
        try {
            file = new File("text.txt");
            raf = new RandomAccessFile(file, "rw"); // r 只读
            // 获取 RandomAccessFile对象文件指针的位置，初始位置为0
            System.out.print("输入内容：" + raf.getFilePointer());
            //将记录指针移动到该文件的最后
            raf.seek(raf.length());
            raf.writeChars("123123123123");
            //移动文件记录指针的位置
            raf.seek(30); //第二处调用了seek（1000）方法，是指把文件的记录指针定位到1000字节的位置
            byte[] b = new byte[1024];
            int hasRead = 0;
            //循环读取文件
            while ((hasRead = raf.read(b)) > 0) {
                //输出文件读取的内容
                System.out.print(new String(b, 0, hasRead));
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            raf.close();
        }
    }
}
